home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CADAR / Symbols / 12-tone / create-twelve-tone-rows < prev   
Lisp/Scheme  |  1998-10-22  |  3KB  |  84 lines

  1. create-twelve-tone-rows 
  2. name row &key (type :int) (add-rautavara-vars nil)
  3.  
  4. legal types is :int and :symb
  5.  
  6.  
  7. This function automatically creates all 48 variants of row.
  8. That is: the twelve transposed versions of original-row,
  9. inverted-row, retrograded-row and inverted-retrograded-row
  10. and binds them all with setq to name.
  11. so with name 'row you will get 
  12.  
  13. row0-o -> row-11-o
  14. row0-i -> row-11-i
  15. row0-r -> row-11-r
  16. row0-ri -> row-11-ri
  17.                    
  18. row can be integers or symbols. 
  19. With add-rautavara-vars = t you will get 48
  20. additional rows which is all twelve transpositions of
  21. quint-row, quart-row,
  22. retrograded-quint-row and retrograded-quart-row. 
  23.  
  24. row0-qui -> row-11-qui
  25. row0-qua -> row-11-qua
  26. row0-rqui -> row-11-rqui
  27. row0-rqua -> row-11-rqua
  28.  
  29. (create-twelve-tone-rows 'foo '(0 8 11 10 2 1 4 3 7 6 9 5)
  30. :add-rautavara-vars nil :type :int)
  31.  
  32. ->(setq foo0-o '(0 8 11 10 2 1 4 3 7 6 9 5)) 
  33. (setq foo4-o '(4 0 3 2 6 5 8 7 11 10 1 9)) 
  34. (setq foo1-o '(1 9 0 11 3 2 5 4 8 7 10 6)) 
  35. (setq foo2-o '(2 10 1 0 4 3 6 5 9 8 11 7)) 
  36. (setq foo10-o '(10 6 9 8 0 11 2 1 5 4 7 3)) 
  37. (setq foo11-o '(11 7 10 9 1 0 3 2 6 5 8 4)) 
  38. (setq foo8-o '(8 4 7 6 10 9 0 11 3 2 5 1)) 
  39. (setq foo9-o '(9 5 8 7 11 10 1 0 4 3 6 2)) 
  40. (setq foo5-o '(5 1 4 3 7 6 9 8 0 11 2 10)) 
  41. (setq foo6-o '(6 2 5 4 8 7 10 9 1 0 3 11)) 
  42. (setq foo3-o '(3 11 2 1 5 4 7 6 10 9 0 8)) 
  43. (setq foo7-o '(7 3 6 5 9 8 11 10 2 1 4 0)) 
  44. (setq foo7-r '(0 4 1 2 10 11 8 9 5 6 3 7)) 
  45. (setq foo3-r '(8 0 9 10 6 7 4 5 1 2 11 3)) 
  46. (setq foo6-r '(11 3 0 1 9 10 7 8 4 5 2 6)) 
  47. (setq foo5-r '(10 2 11 0 8 9 6 7 3 4 1 5)) 
  48. (setq foo9-r '(2 6 3 4 0 1 10 11 7 8 5 9)) 
  49. (setq foo8-r '(1 5 2 3 11 0 9 10 6 7 4 8)) 
  50. (setq foo11-r '(4 8 5 6 2 3 0 1 9 10 7 11)) 
  51. (setq foo10-r '(3 7 4 5 1 2 11 0 8 9 6 10)) 
  52. (setq foo2-r '(7 11 8 9 5 6 3 4 0 1 10 2)) 
  53. (setq foo1-r '(6 10 7 8 4 5 2 3 11 0 9 1)) 
  54. (setq foo4-r '(9 1 10 11 7 8 5 6 2 3 0 4)) 
  55. (setq foo0-r '(5 9 6 7 3 4 1 2 10 11 8 0)) 
  56. (setq foo5-i '(5 9 6 7 3 4 1 2 10 11 8 0)) 
  57. (setq foo9-i '(9 1 10 11 7 8 5 6 2 3 0 4)) 
  58. (setq foo6-i '(6 10 7 8 4 5 2 3 11 0 9 1)) 
  59. (setq foo7-i '(7 11 8 9 5 6 3 4 0 1 10 2)) 
  60. (setq foo3-i '(3 7 4 5 1 2 11 0 8 9 6 10)) 
  61. (setq foo4-i '(4 8 5 6 2 3 0 1 9 10 7 11)) 
  62. (setq foo1-i '(1 5 2 3 11 0 9 10 6 7 4 8)) 
  63. (setq foo2-i '(2 6 3 4 0 1 10 11 7 8 5 9)) 
  64. (setq foo10-i '(10 2 11 0 8 9 6 7 3 4 1 5)) 
  65. (setq foo11-i '(11 3 0 1 9 10 7 8 4 5 2 6)) 
  66. (setq foo8-i '(8 0 9 10 6 7 4 5 1 2 11 3)) 
  67. (setq foo0-i '(0 4 1 2 10 11 8 9 5 6 3 7)) 
  68. (setq foo5-ri '(0 8 11 10 2 1 4 3 7 6 9 5)) 
  69. (setq foo9-ri '(4 0 3 2 6 5 8 7 11 10 1 9)) 
  70. (setq foo6-ri '(1 9 0 11 3 2 5 4 8 7 10 6)) 
  71. (setq foo7-ri '(2 10 1 0 4 3 6 5 9 8 11 7)) 
  72. (setq foo3-ri '(10 6 9 8 0 11 2 1 5 4 7 3)) 
  73. (setq foo4-ri '(11 7 10 9 1 0 3 2 6 5 8 4)) 
  74. (setq foo1-ri '(8 4 7 6 10 9 0 11 3 2 5 1)) 
  75. (setq foo2-ri '(9 5 8 7 11 10 1 0 4 3 6 2)) 
  76. (setq foo10-ri '(5 1 4 3 7 6 9 8 0 11 2 10)) 
  77. (setq foo11-ri '(6 2 5 4 8 7 10 9 1 0 3 11)) 
  78. (setq foo8-ri '(3 11 2 1 5 4 7 6 10 9 0 8)) 
  79. (setq foo0-ri '(7 3 6 5 9 8 11 10 2 1 4 0))
  80.  
  81. with type :symb you get integers converted to symbols.
  82.  
  83.  
  84.